import store from '~/store'

// 定义判断是否有权限的方法
function hasPermission(value, el=false){
    if(!Array.isArray(value)){
        throw new Error('需要指定权限,如v-permission=["getStatistics1,GET"]等等')
    }
    // 去状态管理中寻找后端返回的权限和前端对比
    const hasAuth = value.findIndex(e => store.state.ruleNames.includes(e)) != -1
    // 传进来的节点不为空并且没有权限
    if(el && !hasAuth){
        // 移除节点(父节点存在的情况)
        el.parentNode && el.parentNode.removeChild(el)
    }
    return hasAuth
}

export default {
    install(app){
        app.directive('permission',{
            mounted(el, binding){
                // 调用方法看看是否有权限
                hasPermission(binding.value,el)
            }
        })
    }
}
